certbot 使用 dns-cloudflare 插件申请 ssl 证书
注意:使用
dns-cloudflare
验证域名申请证书需要先将域名托管到cloudflare
。
1. 安装 certbot
和 dns-cloudflare
python3 -m pip install certbot
python3 -m pip install certbot-dns-cloudflare
certbot
的可执行文件路径为:/usr/local/bin/certbot
2. 登录 cloudflare
账户,添加用于 certbot
验证的令牌
- 登录
dns-cloudflare
账户,然后访问 https://dash.cloudflare.com/profile/api-tokens 新建令牌; - 设置令牌权限为:
Zone:DNS:Edit
; - 设置区域资源为要申请证书的域名;
- 保存令牌的密钥备用;
3. 创建 dns-cloudflare
配置文件并赋予 600
权限
mkdir -pv ~/.secrets/certbot
echo "dns_cloudflare_api_token = token-xxxxx" > ~/.secrets/certbot/cloudflare.ini
chmod 600 ~/.secrets/certbot/cloudflare.ini
dns_cloudflare_api_token = token-xxxxx
token-xxxxx
为第二步中令牌的密钥。
4. 使用 certbot
通过 dns-cloudflare
插件申请 ssl
证书
/usr/local/bin/certbot certonly --dns-cloudflare --dns-cloudflare-credentials ~/.secrets/certbot/cloudflare.ini --agree-tos --register-unsafely-without-email -d a.bcd.com
如果提示
AttributeError: module 'lib' has no attribute 'X509_V_FLAG_NOTIFY_POLICY'
,请执行以下命令再申请证书:apt-get remove python3-openssl
python3 -m pip install pyOpenSSL
参考内容:https://certbot-dns-cloudflare.readthedocs.io/en/stable/#certbot-cloudflare-token-ini
certbot certonly --nginx --agree-tos --register-unsafely-without-email -d azreg.feve.top